package com.dgshanger.sanhxiaofeisc.mvp.contract;

import com.dgshanger.sanhxiaofeisc.entity.HistoryPaidEntity;
import com.dgshanger.sanhxiaofeisc.entity.UserEntity;
import com.xx.baseuilibrary.mvp.BaseMvpView;
import com.xx.baseutilslibrary.network.rx.RxHttpObserver;

import java.util.List;

/**
 * PayForContract
 * 沉迷学习不能自拔
 * Describe：
 * Created by 雷小星🍀 on 2018/5/7 17:24.
 */

public interface PayForContract {
    interface Model {
        /**
         * 加载指定用户数据
         *
         * @param mobile 用户手机号
         */
        void loadUser(String mobile, RxHttpObserver<UserEntity> httpObserver);

        /**
         * 申请贷款
         *
         * @param otherpay_mobile 手机号
         * @param otherpay_vip_id 会员卡id
         * @param remark
         */
        void otherPayApply(String otherpay_mobile, String otherpay_vip_id, String otherPayVipQty, String remark, RxHttpObserver<Object> httpObserver);

        /**
         * 申请商家他人支付
         *
         * @param otherpay_shop_id 订单id
         * @param otherpay_amount  支付金额
         */
        void shopOtherPayApply(String otherpay_mobile, String otherpay_shop_id, String otherpay_amount, RxHttpObserver<Object> httpObserver);

        /**
         * 加载历史数据
         */
        void loadHistory(RxHttpObserver<List<HistoryPaidEntity>> httpObserver);
    }

    interface View extends BaseMvpView {

        /**
         * 获取代付人的手机号
         */
        String getOtherPayMobile();

        /**
         * 获取代付会员卡号
         */
        String getOtherpayVipId();

        /**
         * 获取会员卡购买数量
         */
        String getOtherPayVipQty();

        /**
         * 获取备注
         */
        String getRemark();


        /**
         * 设置用户数据
         *
         * @param userData 用户数据
         */
        void setUserData(UserEntity userData);

        /**
         * 设置历史记录
         *
         */
        void setHistoryData(List<HistoryPaidEntity> historyPaidEntityList);

        void onOtherPaySuccess(String type);


    }

    interface Presenter {

        /**
         * 加载历史数据
         */
        void loadHistory();


        void loadUser(String mobile);

        /**
         * 申请代付
         */
        void otherPayApply();

        /**
         * 申请商家他人支付
         *
         * @param otherpay_shop_id 订单id
         * @param otherpay_amount  支付金额
         */
        void shopOtherPayApply(String otherpay_shop_id, String otherpay_amount);
    }
}
